A Typed Interrupt Calculus
نویسندگان
چکیده
Most real-time systems require responsive interrupt handling. Programming of interrupt handlers is challenging: in order to ensure responsiveness, it is often necessary to have interrupt processing enabled in the body of lower priority handlers. It would be a programming error to allow the interrupt handlers to interrupt each other in a cyclic fashion; it could lead to an unbounded stack. Until now, static checking for such errors could only be done using model checking. However, the needed form of model checking requires a whole-program analysis that cannot check program fragments. In this paper, we present a calculus that contains essential constructs for programming interrupt-driven systems. The calculus has a static type system that guarantees stack boundedness and enables modular type checking. A number of common programming idioms have been type checked using our prototype implementation.
منابع مشابه
Formalizing Dynamic Software Updating
Dynamic software updating (DSU) enables running programs to be updated with new code and data without interrupting their execution. A number of DSU systems have been designed, but there is still little rigorous understanding of how to use DSU technology so that updates are safe. As a first step in this direction, we introduce a small update calculus with a precise mathematical semantics. The ca...
متن کاملDecomposing Typed Lambda Calculus into a Couple of Categorical Programming Languages
We give two categorical programming languages with variable arrows and associated abstraction/reduction mechanisms, which extend the possibility of categorical programming Hag87, CF92] in practice. These languages are complementary to each other { one of them provides a rst-order programming style whereas the other does higher-order { and are \children" of the simply typed lambda calculus in th...
متن کاملA semantic characterization of the well-typed formulæ of λ-calculus
A model-theoretic operation is characterised that preserves the property of being a model of typed λ-calculus. (i.e., the result of applying it to a model of typed λ-calculus is another model of typed λ-calculus.) An expression is well-typed iff the class of its models is closed under this operation.
متن کاملSimply Easy! An Implementation of a Dependently Typed Lambda Calculus
We present an implementation in Haskell of a dependently-typed lambda calculus that can be used as the core of a programming language. We show that a dependently-typed lambda calculus is no more difficult to implement than other typed lambda calculi. In fact, our implementation is almost as easy as an implementation of the simply typed lambda calculus, which we emphasize by discussing the modif...
متن کاملEmbedding developments into simply typed -calculus
By using an infinity of extra variables every λ-term with indexed redexes is interpreted into a term in the simply typed lambda calculus à la Curry. A development becomes a usual β-reduction in the simply typed lambda calculus and the corresponding properties of developments come out from the corresponding properties (strong normalization and Church-Rosser) holding in this system. In this way w...
متن کامل